<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 定义: 在当前数组内部，将指定位置的成员复制到其他位置,并返回这个数组。
    // 语法: array.copyWithin(target, start = 0, end = this.length)
    // 参数: 
    // 1.target(必须) : 从该位置开始替换数据。 如果为负值， 表示倒数
    // 2.start(可选) : 从该位置开始读取数据， 默认为0. 如果为负值，表示倒数。
    // 3.end(可选) : 到该位置前停止读取数据， 默认等于数组长度。使用负数可从数组结尾处规定位置。
    // 浏览器兼容(MDN): chrome 45,Edge 12,Firefox32,Opera 32,Safari 9, IE 不支持

    eg:
    // -2相当于三号位， -1相当于4号位
    var a = [1, 2, 3, 4, 5]
    a.copyWithin(0, -2, -1)
    // [4, 2, 3, 4, 5]
    console.log(a);
    var a = ['OB1', 'Koro1', 'OB2', 'Koro2', 'OB3', 'Koro3', 'OB4', 'Koro4', 'OB5', 'Koro5']
    // 2位置开始被替换,3位置开始读取要替换的 5位置前面停止替换
    a.copyWithin(2, 3, 5)
    console.log(a); // ['OB1', 'Koro1', 'Koro2', 'OB3', 'OB3', 'Koro3', 'OB4', 'Koro4', 'OB5', 'Koro5']

    // 1.第一个参数是开始被替换的元素位置
    // 2.三个参数前面一个元素停止读取
    // 3.数组的长度不会改变
    // 4.读了几个元素就从开始被替换的地方替换几个元素
 </script>

</html>